package com.css.fxfzdzzh.modules.basicData.landslideSite.repository;

import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteFileData;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteMetaData;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteVersion;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.param.DataVersionPageParam;
import com.css.fxfzdzzh.modules.basicData.landslideSite.vo.DataPageVO;
import com.css.fxfzdzzh.modules.basicData.param.SysDataVersionSameTypeDataExistParam;
import com.css.fxfzdzzh.modules.eqLandslide.lawAnalysis.vo.SlopesVO;
import com.css.fxfzdzzh.modules.evaluate.VO.VersionPageVO;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author Dbj
 * @date 2023年02月22日  13:57
 */
public interface LandslideSiteRepository {
    Map<String, Object> page(DataVersionPageParam dataVersionPageParam);

    void save(LandslideSiteVersion landslideSite);

    void delVersionDataByVersionCode(String versionCode,String repaceUser);

    LandslideSiteVersion getVersionInfo(String versionCode);

    //void saveMetaDataInfo(LandslideSiteFileData metaData);

    LandslideSiteMetaData getVersionMetaDataInfo(String versionCode);

    void saveMetaDataInfo(LandslideSiteMetaData metaData);

    void updateMetaDataInfo(LandslideSiteMetaData metaData);

    void deleteMetaData(String versionCode,String updateUser);

    void deleteVersionData(String versionCode,String updateUser);

    void batchSave(List<LandslideSiteFileData> list);

    Map<String, Object> dataPage(DataPageVO dataPageVO);

    List<LandslideSiteFileData> getLanslideSiteFileData(DataPageVO dataPageVO);

    void exportExcel(List<LandslideSiteFileData> list, HttpServletResponse response);

    void deleteData(String versionCode, String userId);

    Map<String, Object> pageForAnalyse(VersionPageVO param);

    List<SlopesVO> getSlopeAreaByGeomAndVersion1(String geomText, String param2);

    List<Map<String,Object>> getByGeomAndVersion2(String tableName, String param2);

    String sameTypeDataExist(SysDataVersionSameTypeDataExistParam sysDataVersionSameTypeDataExistParam);

    List<String> getVersionCodeListByType();

    void delOldVersionData(String versionCode);

    Integer getUploadFileNum(String versionCode);

    void updateData(String versionCode);

    void deleteFileData(String versionCode);

    void restoreFileData(String versionCode);

    void timingDeleteFileData(Date beginOfDay, Date endOfDay);

    List<LandslideSiteFileData> listForDp();
}
